package cn.fl.collection.service;

import cmm.mid.core.framework.dto.DataResultDTO;
import cmm.mid.core.framework.page.Pager;
import cn.cmm.base.framework.exception.BaseException;
import cn.fl.collection.condition.RskCltAuthRcvAplQC;
import cn.fl.collection.dto.RskCltAuthRcvAplDTO;
import cn.fl.project.dto.ProjectFlowSHDTO;
import cn.fl.system.vo.SysUlFilesRecVO;

import java.util.List;

/**
* @Description:    委外催收回款接口
* @Author:         liurong
* @CreateDate:     2020/4/23 9:56
* @Version:        1.0
*/
public interface IRskCltAuthRebateService {

    /**
     * 新增回款并发起委外催收回款流程
     * @param applyDTO
     * @param fileList
     * @throws BaseException
     */
    DataResultDTO addApplyAndStartFlow(RskCltAuthRcvAplDTO applyDTO, List<SysUlFilesRecVO> fileList) throws BaseException;

    /**
     * 查询流程跟踪数据
     * 通过cltAuthId获取回款申请ID列表，然后查询流程发起历史
     * @param cltAuthId
     * @return
     * @throws BaseException
     */
    List<ProjectFlowSHDTO> searchFlowListByCltAuthId(Long cltAuthId) throws BaseException;

    /**
     *回款管理列表
     * @param page
     * @return
     * @throws BaseException
     */
    Pager selectRskCltAuthRcvAplPage(Pager page) throws BaseException;

    /**
     *
     * @param condition
     * @return
     */
    public List<RskCltAuthRcvAplDTO> selectList(RskCltAuthRcvAplQC condition);

    /**
     * 列表
     * @return
     */
    List<RskCltAuthRcvAplDTO> selectRskCltAuthRcvAplList(RskCltAuthRcvAplQC qc);
}
